package com.web.exiaodao.remote.vo;

import com.web.exiaodao.business.constant.JConstant;
import com.web.exiaodao.business.entity.User;
import com.web.webstart.base.util.ReflectionUtils;
import com.wordnik.swagger.annotations.ApiModel;
import com.wordnik.swagger.annotations.ApiModelProperty;

/**
 * @author eason.zt
 * @ClassName: WalletTradeRecordVo
 * @Description:钱包-交易记录,交易明细 Vo
 * @date 2017-01-22 18:34:39
 */
@ApiModel(value = "钱包-交易记录,交易明细Vo对象")
public class WalletTradeRecordVo {

    @ApiModelProperty(value = "主键，自动增长")
    private Long id;

    @ApiModelProperty(value = "创建时间")
    private String createTime;
    @ApiModelProperty(value = "@Fields createUser : 创建者;修改者")
    private String createUser;
    @ApiModelProperty(value = "状态，0为无效，1为正常,2为发布,3删除 参看XaConstant.Status")
    private Integer status;

    @ApiModelProperty(value = "用户id,用户id")
    private Long userId;
    @ApiModelProperty(value = "交易金额,交易金额")
    private Double money;
    /**
     * @see com.web.exiaodao.business.constant.JConstant.WalletTradeType
     */
    @ApiModelProperty(value = "交易类型,交易类型(1:充值 2:提现 3:消费 4:佣金分成 5:消费退款 6:提现关闭退款)")
    private Integer tradeType;
    private String tradeTypeStr;
    @ApiModelProperty(value = "收支类型,收支类型，1收入，-1支出")
    private Integer incomeExpendType;
    @ApiModelProperty(value = "收支方式,收支方式（0:e孝道平台，1:支付宝）")
    private Integer incomeExpendMethod;
    @ApiModelProperty(value = "交易备注,交易备注")
    private String remarks;
    @ApiModelProperty(value = "交易订单号,交易订单号(关联充值记录订单号；提现记录订单号；购买商品的订单号)")
    private String tradeOrderNo;
    /**
     * @see com.web.exiaodao.business.entity.WalletTradeRecord
     * @see com.web.exiaodao.business.constant.JConstant.WalletTradeStatus
     */
    @ApiModelProperty(value = "交易状态,0:交易完成 1：交易进行中（提现需要时间）2：交易关闭(如：提现失败)")
    private Integer tradeStatus;
    @ApiModelProperty(value = "该笔交易完成对应的账号余额,该笔交易完成对应的账号余额")
    private Double accountBalance;
    @ApiModelProperty(value = "提现交易关闭/完成时间,提现交易关闭/完成时间")
    private String tradeCloseDateTime;


    private User user;

    public WalletTradeRecordVo() {
        super();
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    public Integer getTradeType() {
        return tradeType;
    }

    public void setTradeType(Integer tradeType) {
        this.tradeType = tradeType;
    }

    public Integer getIncomeExpendType() {
        return incomeExpendType;
    }

    public void setIncomeExpendType(Integer incomeExpendType) {
        this.incomeExpendType = incomeExpendType;
    }

    public Integer getIncomeExpendMethod() {
        return incomeExpendMethod;
    }

    public void setIncomeExpendMethod(Integer incomeExpendMethod) {
        this.incomeExpendMethod = incomeExpendMethod;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getTradeOrderNo() {
        return tradeOrderNo;
    }

    public void setTradeOrderNo(String tradeOrderNo) {
        this.tradeOrderNo = tradeOrderNo;
    }

    public Integer getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(Integer tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public Double getAccountBalance() {
        return accountBalance;
    }

    public void setAccountBalance(Double accountBalance) {
        this.accountBalance = accountBalance;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getTradeTypeStr() {
        try {
            tradeTypeStr = ReflectionUtils.getContantName(JConstant.WalletTradeType.class, tradeType);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tradeTypeStr;
    }

    public void setTradeTypeStr(String tradeTypeStr) {
        this.tradeTypeStr = tradeTypeStr;
    }

    public String getTradeCloseDateTime() {
        return tradeCloseDateTime;
    }

    public void setTradeCloseDateTime(String tradeCloseDateTime) {
        this.tradeCloseDateTime = tradeCloseDateTime;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

